package com.pe.pgn.clubpgn.domain;

import java.math.BigDecimal;
import java.util.Calendar;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;

import org.hibernate.annotations.Type;
import org.springframework.format.annotation.DateTimeFormat;

@Entity
@Table(name = "clpm_documento_pago_empresa")
public class ClpmDocumentoPagoEmpresa extends CamposAuditoria{
	
	
	/**
	 * 
	 */
	private static final long serialVersionUID = -7130917575925029856L;
	private Long id;
	private ClpbClienteEmpresa clpbClienteEmpresa;
	private String deClienteEmpresa;
	private String coFactura;
	private BigDecimal vaMontoAmortizaLineaCredito;
	private BigDecimal vaDescuento;
	private BigDecimal vaMontoRealACobrar;
	private Calendar daFechaEmisionFactura;
	private Calendar daFechaPagoFactura;
	private Calendar daFechaRegistroPago;
	private boolean stDocumentoPagoEmpresa;
	private String fechaEmisionFactura;
	private String fechaPagoFactura;
	private String fechaRegistroPagoFactura;
	private String fechaEmisionInicio;
	private String fechaEmisionFin;
	private String fechaPagoInicio;
	private String fechaPagoFin;

	
    @Id
    @Column(name="id")
    @SequenceGenerator(name="seqdocumentopago", sequenceName="seq_documento_pago")
    @GeneratedValue(generator="seqdocumentopago")  	
	public Long getId() {
		return id;
	}
	
    @ManyToOne(targetEntity = ClpbClienteEmpresa.class)
    @JoinColumn(name="co_cliente_empresa")
    public ClpbClienteEmpresa getClpbClienteEmpresa() {
		return clpbClienteEmpresa;
	}


	@Column(name = "co_factura",length = 50)
	public String getCoFactura() {
		return coFactura;
	}

    @Column(name = "va_monto_amortiza_linea_cred")    
	public BigDecimal getVaMontoAmortizaLineaCredito() {
		return vaMontoAmortizaLineaCredito;
	}

    @Column(name = "va_descuento")    
	public BigDecimal getVaDescuento() {
		return vaDescuento;
	}
    
    @Column(name = "va_monto_real_a_cobrar")
	public BigDecimal getVaMontoRealACobrar() {
		return vaMontoRealACobrar;
	}

    @Column(name = "da_fecha_emision_factura", updatable = false, nullable = false)
    @Temporal(TemporalType.TIMESTAMP)
    @DateTimeFormat(style = "S-")    
	public Calendar getDaFechaEmisionFactura() {
		return daFechaEmisionFactura;
	}
    
    @Column(name = "da_fecha_pago_factura", updatable = false, nullable = false)
    @Temporal(TemporalType.TIMESTAMP)
    @DateTimeFormat(style = "S-")    
	public Calendar getDaFechaPagoFactura() {
		return daFechaPagoFactura;
	}

    @Column(name = "da_fecha_registro_pago", updatable = false, nullable = false)
    @Temporal(TemporalType.TIMESTAMP)
    @DateTimeFormat(style = "S-")    
	public Calendar getDaFechaRegistroPago() {
		return daFechaRegistroPago;
	}

    @Column(name = "st_documento_pago_empresa", nullable = false)
	@Type(type = "yes_no")    	
	public boolean isStDocumentoPagoEmpresa() {
		return stDocumentoPagoEmpresa;
	}

	@Column(name = "co_usuario_creador", updatable = false, nullable = false, length = 30)
	public String getCoUsuarioCreador() {
		return coUsuarioCreador;
	}

    @Column(name = "da_fecha_creacion", updatable = false, nullable = false)
    @Temporal(TemporalType.TIMESTAMP)
    @DateTimeFormat(style = "S-")
	public Calendar getDaFechaCreacion() {
		return daFechaCreacion;
	}

	@Column(name = "co_usuario_modificador", length = 30)
	public String getCoUsuarioModificador() {
		return coUsuarioModificador;
	}

    @Column(name = "da_fecha_modificacion")
    @Temporal(TemporalType.TIMESTAMP)
    @DateTimeFormat(style = "S-")
	public Calendar getDaFechaModificacion() {
		return daFechaModificacion;
	}
    
    
    
    
    
    
    
	public void setId(Long id) {
		this.id = id;
	}

	public void setClpbClienteEmpresa(ClpbClienteEmpresa clpbClienteEmpresa) {
		this.clpbClienteEmpresa = clpbClienteEmpresa;
	}

	public void setCoFactura(String coFactura) {
		this.coFactura = coFactura;
	}

	public void setVaMontoAmortizaLineaCredito(BigDecimal vaMontoAmortizaLineaCredito) {
		this.vaMontoAmortizaLineaCredito = vaMontoAmortizaLineaCredito;
	}

	public void setVaDescuento(BigDecimal vaDescuento) {
		this.vaDescuento = vaDescuento;
	}

	public void setVaMontoRealACobrar(BigDecimal vaMontoRealACobrar) {
		this.vaMontoRealACobrar = vaMontoRealACobrar;
	}

	public void setDaFechaEmisionFactura(Calendar daFechaEmisionFactura) {
		this.daFechaEmisionFactura = daFechaEmisionFactura;
	}

	public void setDaFechaPagoFactura(Calendar daFechaPagoFactura) {
		this.daFechaPagoFactura = daFechaPagoFactura;
	}

	public void setDaFechaRegistroPago(Calendar daFechaRegistroPago) {
		this.daFechaRegistroPago = daFechaRegistroPago;
	}

	public void setStDocumentoPagoEmpresa(boolean stDocumentoPagoEmpresa) {
		this.stDocumentoPagoEmpresa = stDocumentoPagoEmpresa;
	}

	
	@Transient
	public String getDeClienteEmpresa() {
		return deClienteEmpresa;
	}

	public void setDeClienteEmpresa(String deClienteEmpresa) {
		this.deClienteEmpresa = deClienteEmpresa;
	}

	@Transient
	public String getFechaEmisionInicio() {
		return fechaEmisionInicio;
	}

	public void setFechaEmisionInicio(String fechaEmisionInicio) {
		this.fechaEmisionInicio = fechaEmisionInicio;
	}
	@Transient
	public String getFechaEmisionFin() {
		return fechaEmisionFin;
	}

	public void setFechaEmisionFin(String fechaEmisionFin) {
		this.fechaEmisionFin = fechaEmisionFin;
	}
	@Transient
	public String getFechaPagoInicio() {
		return fechaPagoInicio;
	}
	@Transient
	public void setFechaPagoInicio(String fechaPagoInicio) {
		this.fechaPagoInicio = fechaPagoInicio;
	}
	@Transient
	public String getFechaPagoFin() {
		return fechaPagoFin;
	}

	public void setFechaPagoFin(String fechaPagoFin) {
		this.fechaPagoFin = fechaPagoFin;
	}
	
	@Transient
	public String getFechaEmisionFactura() {
		return fechaEmisionFactura;
	}

	public void setFechaEmisionFactura(String fechaEmisionFactura) {
		this.fechaEmisionFactura = fechaEmisionFactura;
	}

	@Transient
	public String getFechaPagoFactura() {
		return fechaPagoFactura;
	}

	public void setFechaPagoFactura(String fechaPagoFactura) {
		this.fechaPagoFactura = fechaPagoFactura;
	}

	@Transient
	public String getFechaRegistroPagoFactura() {
		return fechaRegistroPagoFactura;
	}

	public void setFechaRegistroPagoFactura(String fechaRegistroPagoFactura) {
		this.fechaRegistroPagoFactura = fechaRegistroPagoFactura;
	}

	@Override
	public boolean equals(Object o) {
		return false;
	}

	@Override
	public int hashCode() {
		return 0;
	}

	@Override
	public String toString() {
		return   this.id + ","  + this.coFactura;
	}	

}
